滑動條(QSlider) 和 數值調整(QSpinBox)元件
1. QSlider 使用
QSlider 添加
-
QSlider()
: 可以搭配QT.Orientation設定成垂直會水平。
from PySide6.QtWidgets import QApplication , QWidget , QSlider , QVBoxLayout
from PySide6.QtCore import Qt
class Mywindow(QWidget):
def __init__(self):
super().__init__()
Slider = QSlider(Qt.Orientation.Horizontal)
Slider2 = QSlider(Qt.Orientation.Vertical)
layout = QVBoxLayout()
layout.addWidget(Slider)
layout.addWidget(Slider2)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QSlider 常用的信號
-
valueChanged.connect(function)
: 當值改變時觸發信號。下面範例是滑條狀態改變時,列印出當前數值。
from PySide6.QtWidgets import QApplication , QWidget , QSlider , QVBoxLayout , QLabel
class Mywindow(QWidget):
def __init__(self):
super().__init__()
Slider = QSlider()
Slider.valueChanged.connect(lambda: print(Slider.value()))
layout = QVBoxLayout()
layout.addWidget(Slider)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QSlider 常用的功能
-
setValue(int)
: 設置數值。
-
setTickInterval(int)
: 設置刻度間隔。
-
TickPosition(QSlider.TickPosition)
: 刻度指標的位置。
下面範例是將範圍設定在0到100,初始值設置50,並把刻度指標放在下面,每五為一個間隔。
from PySide6.QtWidgets import QApplication , QWidget , QSlider , QVBoxLayout , QLabel
from PySide6.QtCore import Qt
class Mywindow(QWidget):
def __init__(self):
super().__init__()
Slider = QSlider(Qt.Orientation.Horizontal)
Slider.setRange(0,100)
Slider.setValue(50)
Slider.setTickInterval(5)
Slider.setTickPosition(QSlider.TickPosition.TicksBelow)
layout = QVBoxLayout()
layout.addWidget(Slider)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
2. QSpinBox 使用
QSpinBox 添加
-
QSpinBox()
: 數值調整元件。如果要用小數點則需要引入QDoubleSpinBox()
元件使用。下面是添加一個QSpinBox的範例。
from PySide6.QtWidgets import QApplication , QWidget , QSpinBox , QVBoxLayout
class Mywindow(QWidget):
def __init__(self):
super().__init__()
SpinBox = QSpinBox()
layout = QVBoxLayout()
layout.addWidget(SpinBox)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QSpinBox 常用的信號
-
valueChanged.connect(function)
: 當數值改變時,觸發信號。下面是當數值改變時,會列印出當前的數值
from PySide6.QtWidgets import QApplication , QWidget , QSpinBox , QVBoxLayout
class Mywindow(QWidget):
def __init__(self):
super().__init__()
SpinBox = QSpinBox()
SpinBox.valueChanged.connect(lambda:print(SpinBox.value()))
layout = QVBoxLayout()
layout.addWidget(SpinBox)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
QSpinBox 常用的功能
-
setValue(int or float)
: 設置數值。
-
SpinBox.setSingleStep(int or float)
: 設定調整時數值的差距
下面範例是將範圍設定在0到50,並一次調整間隔為5,初始值為25。
from PySide6.QtWidgets import QApplication , QWidget , QSpinBox , QVBoxLayout
class Mywindow(QWidget):
def __init__(self):
super().__init__()
SpinBox = QSpinBox()
SpinBox.setRange(0,50)
SpinBox.setValue(25)
SpinBox.setSingleStep(5)
layout = QVBoxLayout()
layout.addWidget(SpinBox)
self.setLayout(layout)
if __name__ == "__main__":
app = QApplication([])
window = Mywindow()
window.show()
app.exec()
總結
1. 日期調整元件(QSlider)
功能 |
方法 |
數值更改時觸發信號 |
valueChanged.connect(function) |
功能 |
方法 |
設定初始數值 |
setValue(int) |
設定刻度間隔 |
setTickInterval(int) |
刻度指標的位置 |
TickPosition(QSlider.TickPosition) |
設定範圍 |
setRange(start,end) |
獲得當前數值 |
value() |
2. 時間調整(QSpinBox)元件
功能 |
方法 |
添加元件(int) |
QSpinBox() |
添加元件(float) |
QDoubleSpinBox() |
功能 |
方法 |
數值更改時觸發信號 |
valueChanged.connect(function) |
功能 |
方法 |
設定初始數值 |
setValue(int or float) |
設定調整時數局差距 |
SpinBox.setSingleStep(int or float) |
設定範圍 |
setRange(start,end) |
獲得當前數值 |
value() |